Mostly-Functional Behavior in Java Programs

نویسندگان

  • William C. Benton
  • Charles N. Fischer
چکیده

We present a lightweight type-and-effect system for Java programs that features two major innovations over extant object-oriented effects systems: initialization effects, which are writes to an object’s state while it is being constructed, and quiescing fields, which are fields that are never written after an object is constructed. We also present a novel taxonomy of degrees of method purity in object-oriented programs, which characterizes methods whose effects are confined to their receiver object. Finally, we find significant amounts of mostly-functional behavior in realistic Java programs: in the benchmarks we analyzed, between 48–53% of declared fields were identifiable as quiescing and between 24–78% of dynamic field reads were from quiescing fields.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Debugging of Java Programs using a model-based approach

Model-based diagnosis is a successful AI technique for diagnosing physical systems but faces new challenges when applied to finding faults in software, i.e., debugging. Previous work has mostly dealt with modeling the behavior of programming languages with exploitable special properties: logic, concurrent, or functional. This paper presents a model that is usable for the representation of imper...

متن کامل

Jade – Java Diagnosis Experiments Status and Outlook

Model-based diagnosis is a successful AI technique for diagnosing physical systems but faces new challenges when applied to finding faults in software, i.e., debugging. Previous work has mostly dealt with modeling the behavior of programming languages with exploitable special properties: logic, concurrent, or functional. In this paper we describe the objectives, the current state, and the addre...

متن کامل

Coverage testing of Java programs and components

Although software testing is a crucial activity in the software development process, only recently have more sound and consistent testing tools become available for testing Java programs and their components. These tools support mostly functional and control-flow based structural criteria. In this paper we explore control-flow and data-flow based coverage criteria to support the testing of Java...

متن کامل

Frappé: Functional Reactive Programming in Java

Functional Reactive Programming (FRP) is a declarative programming model for constructing interactive applications based on a continuous model of time. FRP programs are described in terms of behaviors (continuous, timevarying, reactive values), and events (conditions that occur at discrete points in time). This paper presents Frappé, an implementation of FRP in the Java progamming language. The...

متن کامل

Functional Adaptive Programming with DemeterF

In this paper we present a new functional traversal abstraction for processing OO data structures that decomposes traversal computation into three function objects and a traversal control function. Function objects compute and combine values over a general traversal while the control function allows programmers to limit the extent of a traversal. Our new abstraction is supported by a Java libra...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009